History-based key phrase suggestions for voice control of a home automation system

ABSTRACT

In one embodiment, history-based key phrase suggestions are provided for voice control of a home automation system. A host controller builds a history database that maintains a history of events, each event indicating one or more services activated, one or more scenes activated or one or more types of media content presented by the home automation system. A predictions process on the host controller selects a subset of the events of the history database based on a present condition of the home automation system to produce a predication dataset. A grammar process on a remote control or mobile device selects one or more intentions from a list used by a voice recognition engine, based on the prediction dataset. Each intention includes a key phrase paired with an action. A voice user interface (UI) process suggests key phrases from the one or more selected intentions in a voice control UI on the remote control or mobile device.

BACKGROUND

Technical Field

The present disclosure relates generally to home automation systems andmore specifically to voice control of home automation systems.

Background Information

Home automation systems are becoming increasingly popular in bothresidential and commercial buildings. Such systems may be capable ofcontrolling, switching data between, and otherwise interacting with awide variety of devices, including lighting devices, security devices,audio/video (A/V) devices, heating ventilation and cooling (HVAC)devices, and/or other types of devices. Traditionally, home automationsystems have provided various types of button-centric or touchscreen-based control. More recently, there have been attempts to providevoice control. However various limitations of voice control havehindered its widespread adoption in home automation systems, renderingit more of a curiosity than a direct replacement for button-centric ortouch screen-based control.

One problem with voice control is that users are often unsure what tosay to the home automation system to produce a desired result. Manyvoice recognition systems are configured to understand only a limitednumber of key phrases (a lexicon of key phrases) that are each mapped tocontrol actions. In order to trigger an action, the user must say one ofthe key phases in the lexicon. Users may be initially taught key phrasesvia a user manual, tutorial or other sort of training materials.However, over time they may forget the key phrases for certain desiredactions and become frustrated when they cannot cause the home automationsystem to respond in the desired manner. In attempts to address thisissue, some home automation systems are configured to provide anon-demand listing of all key phrases. However, the display of the entirelexicon often overwhelms the user, burying information relevant to theirpresent desires among a listing of other key phrases that are largelyirrelevant to what they are presently attempting to do.

Accordingly, there is a need for improved techniques for implementingvoice control in a home automation system.

SUMMARY

Example techniques are provided to improve voice control in a homeautomation system by providing history-based key phrase suggestions in avoice control user interface (UI). Such key phrase suggestions mayprompt the user regarding speech input that may be appropriate given theuser's historic usage pattern. The key phrase suggestions may be oflimited number, so as to not overwhelm the user with large amounts ofinformation.

In one example embodiment, host activity recording software on a hostcontroller may build a history database that maintains events that haveoccurred in the home automation system. Each event may indicate one ormore services activated, one or more scenes activated, one or more typesof media content presented or other historical information. Apredictions process on a host controller of the home automation systemmay select a subset of the events from the history database based on apresent condition of the home automation system (e.g., time) to producea predication dataset. For example, the predictions process may selectevents in the history database that occurred on a same day of the weekas the present day of week, in a time window that encompasses thepresent time of day on any day of the week, or in a time window thatencompasses the present time of day on a same day of the week as thepresent day of the week. Voice suggestion software on a remote controlor mobile device may select one or more intentions from a list ofintentions based on the prediction dataset, wherein each intentionincludes a key phrase recognized by a voice recognition engine pairedwith an action performed in the home automation system in response tothe key phrase. The voice suggestion software may display a voicecontrol UI on a screen of the remote control or mobile device thatpresents the key phrases from the one or more selected intentions as keyphrase suggestions. In response to such prompt, the user may speak a keyphrase. Given this speech input from the user, a voice recognitionengine on the remote control or mobile device may compare the speechinput against key phrases of the list of intentions to find a matchingintention, and trigger the action associated with the matchingintention.

It should be understood that a variety of additional features andalternative embodiments may be implemented other than those discussed inthis Summary. This Summary is intended simply as a brief introduction tothe reader, and does not indicate or imply that the examples mentionedherein cover all aspects of the disclosure, or are necessary oressential aspects of the disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The description below refers to the accompanying drawings of exampleembodiments, of which:

FIG. 1 is a block diagram of an example architecture of a homeautomation system operable to control devices about a structure;

FIG. 2 is a block diagram showing example host software, including hostactivity recording software, that may maintain a record of historicalactivity in a home automation system as events in a history database;

FIG. 3 is a block diagram showing an example app, including a voicerecognition engine, that may be executed on a remote control or mobiledevice;

FIG. 4 is an example listing of key phrases of an example list ofintentions that may be dynamically built;

FIG. 5 is a block diagram of example voice suggestion software of an appand a predictions process of host software;

FIG. 6 is a screen shot of an example voice control UI that may bedisplayed on a remote control or mobile device; and

FIG. 7 is a flow diagram of a sequence of steps that may be implementedto provide history-based key phrase suggestions.

DETAILED DESCRIPTION Definitions

As used herein, the term “home automation system” should be interpretedbroadly to encompass various types of home control, “smart home”, and/ordevice control systems that may control devices (e.g., lighting devices,security devices, A/V devices, HVAC devices, electronic door locks,and/or other types of devices) within a structure, such as a residentialdwelling or commercial building. A home automation system may control avariety of different types of devices, or devices of only a particulartype (e.g., only lighting devices, only A/V devices, etc.).

As used herein, the term “mobile device” refers to an electronic devicethat executes a general-purpose operating system and is adapted to betransported on one's person. Devices such as smartphones and tabletcomputers should be considered mobile devices. Desktop computers,servers, or other primarily-stationary computing devices generallyshould not be considered mobile devices.

As use herein, the term “service” refers to an activity offered by ahome automation system that involves interactions between one or moredevices of the home automation system. A service may, but need not,define a list of commands and state feedback applicable to the activity.

As used herein, the term “scene” refers to a set of instructions that,when activated, control one or more devices of a home automation systemin a predefined manner. A scene may, but need not, be defined duringinitial configuration of the home automation system.

As used herein, the term “media content” refers to recorded, broadcastand/or streaming audio and/or video. Media content may include a cableor satellite television station, a streaming or broadcast radio station,stored movies or television shows, stored music, and the like.

As used herein, the term “intention” refers to a data structure that iscapable of storing a relation between a key phrase recognized by a voicerecognition engine and an action performed in response to that keyphrase.

An Example Home Automation System

FIG. 1 is a block diagram of an example architecture 100 of a homeautomation system operable to control devices about a structure (e.g., aresidential dwelling or commercial building). At the core of the systemis a host controller 110 coupled to an in-home local area network (LAN)(e.g., a Wi-Fi network) 150. The host controller may include hardwarecomponents such as a processor, a memory and a storage device, whichcollectively store and execute host software 111 configured to monitorthe control the operations of devices 112-122, as well as to provide UIinterpretation, system administration and monitoring, synchronizationwith cloud services 180 and mobile devices 160, activity recording,activity prediction and other types of functionality.

The host controller 110 may maintain in its storage device a homedatabase 130 that stores configuration information including servicesthe home automation system is configured to provide, user content suchas scenes that are configured for a user of the home automation system,media content associated with a user of the home automation system(e.g., favorites), system state information indicating a presentcondition of the home automation system, as well as other types of data.The home database 130 may further maintain a record of historicalactivity in the home automation system. Such portion of the homedatabase may be referred to as a history database 132. It should beunderstood that in certain alternative embodiments, the history database132 may be a separate database, rather than a part of the home database130, and may be maintained in the storage device of the host controller110, by cloud services 180, or elsewhere.

The devices 112-122 of the home automation system may include lightingdevices 112, such as lighting controllers, lamp modules, dimmer modules,switches, keypads, fan controllers and the like; security devices 114,such as home monitors/cameras, motion sensors, home healthcare sensors,related controllers and the like; audio devices 116 and video devices118 (collectively A/V devices), such as A/V device controllers, infrared(IR) blasters, matrix switchers, media servers, audio amplifiers, cableboxes, and the like; electronic door locks 120 and other types of motoror relay operated devices; HVAC devices 122, such as thermostats; aswell as other types of devices.

Depending on the implementation, the communications capabilities of thedevices 112-122 of the home automation system may vary. For example, atleast some of the devices may include both a LAN interface to enablethem to communicate with the host controller 110 and other devices viathe in-home LAN 150. Likewise, other devices may only have ports ortransceivers for wired or point-to-point wireless communication (e.g.,RS-232 ports, infrared (IR) transceivers, relay control ports,general-purpose input/output (GPIO) ports, etc.) and communicate withthe host controller 110 and other devices using such ports. Further,some devices may include a LAN interface (e.g., a Wi-Fi interface), butnot be configured to communicate with the host controller 110 directlyover the in-home LAN 150, but instead communicate first with cloudservices 180 via the Internet 170 and third party infrastructure 190. Itshould be understood that while HVAC devices 122 are shown in FIG. 1 asan example of one type of device that may communicate in this manner,other types of devices 112-122 may alternatively use this method ofcommunication, and vice versa.

A user may control the home automation system using a remote control 140that communicates with the host controller 110 through the in-home LAN150 (e.g., via Wi-Fi) or directly with the host controller 110 (e.g. viaIR or radio frequency RF signals). The remote control 140 may includehardware components such as a processor, a memory and a storage device,which store and execute software (e.g., an application (app)) configuredto interface with the host controller 110 and cloud services 180,generate and display a home automation control UI (including a voicecontrol UI), and recognize user speech input (e.g., using a voicerecognition engine), among other functionality. The remote control 140may further include a display screen (e.g., a touch screen) for showinga home automation control UI (including a voice control UI) and amicrophone for receiving the user speech input, among other components.

A user may further control the home automation system using a mobiledevice 160 that communicates with the host controller 110 via thein-home LAN 150 or using a mobile data connection to the Internet 170.The mobile device 160 may include hardware components such as aprocessor, a memory and a storage device, which store and execute an app162 (e.g., a mobile app) configured to interface with the hostcontroller 110 and/or cloud services 180, generate and display a homeautomation control UI (including a voice control UI), and recognize userspeech input (e.g., using a voice recognition engine), among otherfunctionality. The mobile device 160 may further include a displayscreen (e.g., a touch screen) for showing the home automation control UI(including the voice control UI) and a microphone for receiving the userspeech input, among other components.

The host controller 110 and mobile device 160 may communicate viainternet 170 with cloud services 180 and host application programinterfaces (APIs) 182 and mobile APIs 184. The cloud services 180 mayprovide remote access to home automation control, a persistent backup ofthe home database 130 (storing data in a configuration database 186),interfaces to third party infrastructure (via third party adaptors 188),user profiles and usage tracking (storing data in user database 189), amechanism for over-the-air updates, host crash reporting, and licensemanagement, among other functions.

Activity Recording

FIG. 2 is a block diagram showing example host software 111, includinghost activity recording software 200, that may maintain a record ofhistorical activity in a home automation system as events in a historydatabase 132. The software 200 may include an activity process 210 thatreceives massages via inter-process communication (IPC) from othersoftware (e.g., on the host controller 110) regarding servicesactivated, scenes activated, media content presented by the homeautomation system, and the like. The activity process 210 may pass thesemessages along to a message router process 220. The activity process 210may receive back from the message router process 220 responses torequests regarding activity in the home automation system. The activityprocess 210 may pass these responses on to other software, such apredictions process, as discussed further below.

The message router process 220 performs several function includingtransforming massages from the activity process 210 into events 230,routing events 230 to recorder interfaces 250, and routing responses torequests back to the activity process 210. Events 230 are objects thatmaintain information describing historical activity in the homeautomation system including services activated, scenes activated, typesof media content presented, and the like. Each event 230 may include auser property that indicates the user that triggered the event, a typeproperty that describes the type of the event, a group key that groupssimilar types of events together, a service property that describes aservice activated (or is null if the event does not involve a service),a time property that indicates a time the event occurred (including dayof week and time of day), and an arguments property that storesadditional information.

Requests 240 are objects that represent queries for data from clientprocesses regarding activity in the home automation system that may beavailable from recorders 260-270. One client process that may issue arequest 240 is a predictions process, as discussed in more detail below.

Recorder interfaces 250 may provide interfaces to recorder processes,such as a feed process 260 and a history process 270, that accept events230 and requests 240, among other uses. The feed process 260 maygenerate an activity feed that provides a brief history of events 230 inthe home automation system and passes this along to cloud services 180.The history process 270 may store events 230 in the history database132, logging properties including, user, type, group key, service, timeand arguments.

Voice Control

As discussed above, the home automation system may be voice controlledsuch that, in response to speech input, a corresponding user interfaceaction is triggered. Such voice control may be implemented by a voicerecognition engine that is configured to recognize a limited number ofkey phrases that are each associated with an action in the homeautomation system (e.g., to activate a service, activate a scene,present media content, etc.).

FIG. 3 is a block diagram showing an example app 162, including a voicerecognition engine 300, that may be executed on a remote control 140 ormobile device 160. The voice recognition engine 300 may include agrammar process 310 that performs a variety of different functions. Onefunction of the grammar process 310 may be to build a list of intentions320 (e.g., structured as an intention lookup table). Each intentionincludes a key phrase that is recognized by the voice recognition enginepaired with an action performed by the home automation system inresponse to the key phrase. The actions may include UI actions 370 thatcontrol one or more aspects of the home automation system control UI,and system actions 380 that control services, scenes, media content, orother operations of the home automation system. The list of intentions320 may be built dynamically using data obtained from the home database130. The data may include configuration information 330, such asindications of services the home automation system is configured toprovide; user content 340, such as scenes defined in the home automationsystem or media content (e.g., favorites) associated with a user; andsystem state 350, such as indications of active services. The dynamicbuilding may be tailored to the identity of the current user and a roomof the structure in which the user is located (e.g., based on adynamically determined location of the remote control 140 or mobiledevice 160 as in a particular room or a binding of the remote control140 or mobile device 160 to a particular room). The dynamic building mayadd intentions to the list that are relevant to the currentconfiguration information 330, user content 340, system state 350, userand room, while omitting intentions that are inapplicable (e.g.,intentions for services that are not presently configured in the room,for scenes that are not defined in the room, for user content that isnot a favorite of the current user, for operating conditions other thanthe present system state, etc.). The grammar process 310 may continuallymonitor configuration information 330, user content 340, system state350, user and room, and rebuild the list of intentions as needed. Toimprove efficiency, only those portions of the list of intentions thatare affected by a change may be rebuilt (e.g., a partial update).

Another function the grammar process 310 may perform is to validate thekey phrases of the intentions to ensure they are recognizable by arecognizer process 360. Intentions whose key phrases are not validatedmay be pruned out of the list of intentions. Once validated, the grammarprocess 310 may output the intentions to the recognizer process 360. Therecognizer process 360 may compare speech input (e.g., received via amicrophone of the remote control 140 or mobile device 160) with keyphrases of the list of intentions, and trigger the corresponding actionupon a match.

Still further, as discussed in more detail below, the grammar process310 may also play a role in selecting intentions whose key phrases areto be displayed as key phrase suggestions in a voice control UI.

FIG. 4 is an example listing of key phrases 400 of an example list ofintentions that may be dynamically built. The intentions can becategorized into several categories, including service intentions, sceneintentions favorite intentions, command intentions and navigationintentions. Service intentions may be scoped to a room, includingkeywords paired with actions that affect a service in the room. The keyphrase of service intentions may be formatted as “Service”, where thename of the service is provided alone (e.g., “Apple TV”, “Blueray”,“Cable”, etc.) or as “Watch Service”, where the name of the service ispreceded by the command “Watch” (e.g., “Watch Apple TV”, “WatchBlueray”, “Watch Cable”, etc.). These key phrases may be associated withactions that activate an audio/video version of the service. The keyphrase of service intentions may also be formatted as “Listen toService”, where the name of the service is preceded by the command“Listen to” (e.g., “Listen to Apple TV Live”, “Listen to CD”, “Listen toRadio”, etc.). These key phrases may be associated with actions thatactivate an audio only version of the service (if available).

Scene intentions may include keywords paired with actions that activate,schedule or unscheduled a scene for a current user. Scene intentions maybe scoped to a current user, including keywords paired with actions thataffect a scene associated with the user. The key phrase of sceneintentions may be formatted as “Scene”, where the name of scene isprovided alone (e.g., “Dinner”, “Goodnight”, “Play Time”, etc.). Thesekey phrases may be associated with actions that activate a scene. Thekey phrase of scene intentions may also be formatted as “ScheduleScene”, where the name of the scene is preceded by the command“Schedule” (e.g., “Schedule Dinner”, “Schedule Goodnight”, “SchedulePlay Time”, etc.). These key phrases may be associated with actions thatactivate the scene's schedule if it has been configured. Further, thekey phrase of scene intentions may also be formatted as “UnscheduleScene”, where the name of the scene is preceded by the command“Unschedule”. These key phrases may be associated with actions thatdeactivate a scene's schedule if active.

Favorite intentions may include keywords paired with actions thatpresent one or more types of media content selected by a current user.Favorite intentions may be scoped to both a current user and a room,including keywords paired with actions that affect media content presentin the room and associated with the user. The actions of favoriteintentions may first activate a service, and then set a channel orselect a media file or stream used with that service. The key phrase offavorite intentions may be formatted as “Service”, where the name ofservice is provided alone (e.g., “ABC”, “CBS”, “CNN” etc.) or “WatchService”, where the name of the service is preceded by the command“Watch” (e.g., “Watch ABC”, “Watch CBS”, “Watch CNN” etc.). These keyphrases may be associated with actions that activate an audio/videoversion of the service set to the corresponding channel (or using acorresponding media file or stream). The key phrase of favoriteintentions may also be formatted as “Listen to Service”, where the nameof the service is preceded by the command “Listen to”. These key phrasesmay be associated with actions that activate an audio only version ofthe service (if available) set to the corresponding channel (or using acorresponding media file or stream).

Command intentions may include keywords paired with actions that sendout a single command that may be related to a current state of the homeautomation system (i.e. a context). Command intentions may be scoped toa room. The key phrase of command intentions may be from a predefinedlist of commands, for example, including key phrases such as “Brighter”or “Dimmer” that are paired with actions that increase or decrease lightlevel in the room, or, for example, including key phrases such as “I'mHot” or “I'm Cold” that are paired with actions that decrease orincrease temperature in the room.

Navigation intentions may include keywords paired with actions thatprovide navigation shortcuts in a home automation control UI. Navigationintentions may vary in scope, some being global while others dependingon an active service or room. An example navigation intention mayinclude the key phrase “Keypad” paired with an action to switch to akeypad screen of a currently active service (if available) in the homeautomation control UI. Another example navigation intention may includethe key phrase “Capture” paired with an action to switch to a scenecapture screen in the home automation control UI.

It should be understood that a wide variety of other types of intentionsmay be provided in the home automation system.

History-Based Key Phrase Suggestions

The history database 132 and the list of intentions 320 may be leveragedto produce key phrase suggestions that are likely useful to the usergiven the user's historical usage pattern. These history-based keyphrase suggestions may be displayed in a voice control UI on the remotecontrol 140 or mobile device 160 to prompt the user regarding speechinput that may produce a desired result.

FIG. 5 is a block diagram of example voice suggestion software 500 of anapp 162 and a predictions process 510 of host software 111. Initially,the predictions process 510 may issue one or more requests to theactivity process 210 to determine (based on the history database 132) afrequency of various types of events when the home automation system wasin a condition similar to its present condition. Such similarity may bebased on time (e.g., both time of day and day of week), such that therequests seek the frequency of events on a same day of the week as thepresent day of week, in a time window that encompasses a present time ofday on any day of the week, in a time window that encompasses thepresent time of day on a same day of the week, or based on some othertime-related criteria. The predictions process 510 may apply scoring tothe results returned in response to the requests. The scoring may bebased on frequency, as well as length of the time window used inselecting the events, with a shorter time window causing a higher scorethan a longer time window. Further the scoring may be adjusted based ontype of event, with types of events indicating more specific user actionreceiving higher scores than events indicating less specific useraction. The scored results may then be provided as a prediction datasetto the voice suggestion software 500 on the remote control 140 or mobiledevice 160.

The voice suggestion software 500 may include a communication API 520used to interface with the host controller 110, which passes theprediction dataset to a suggestions process 530. The suggestions process530 takes the prediction dataset and processes it into a form useful tothe grammar process 310, e.g., selecting a predetermined number of mostfrequent events. Such processing may transform the prediction datasetinto a form that can be readily associated with intentions from a listof intentions 320. The processed prediction dataset and list ofintentions 320 are provided to the grammar process 310 which associatesevents from the prediction data set with intentions from the list 320,to select intentions. At least the key phrases from such selectedintentions are then provided to a voice UI process 540. The voice UIprocess 540 displays the key phrases of the selected intentions as keyphrase suggestions in a voice control UI on a display screen of theremote control 140 or mobile device 160.

FIG. 6 is a screen shot of an example voice control UI 600 that may bedisplayed on the remote control 140 or mobile device 160. Key phrasesuggestions 610 may be displayed in a listing in connection with aprompt to the user to try them as speech input. In some implementations,the voice control UI 600 may be displayed on a touch screen of theremote control 140 or mobile device 160, and the key phrase suggestionsmay also serve as selectable buttons. Touch upon a button may beconsidered equivalent to speaking the key phrase, and trigger thecorresponding action of the intention.

Recap and Conclusions

FIG. 7 is a flow diagram of a sequence of steps that may be implementedto provide history-based key phrase suggestions. The sequence of steps700 provides a high-level recap of various operations discussed above,yet omits certain details to better illustrate the overall flow ofoperations. At step 710, the host activity recording software 200 on thehost controller 110 (specifically, the history recorder 270 workingtogether with the activity process 210 and message router process 220)may build the history database 132 that maintains events that haveoccurred. Each event may, for example, indicate one or more servicesactivated, one or more scenes activated or one or more types of mediacontent presented. At step 720, the predictions process 510 on the hostcontroller 110 (working together with the activity process 210), mayselect a subset of the events of the history database 132 based on apresent condition of the home automation system (e.g., time) to producea predication dataset. At step 730, the voice suggestion software 500 onthe remote control 140 or mobile device 160 (specifically, thesuggestions process 530 and grammar process 310), based on theprediction dataset, may select one or more intentions from a list ofintentions, wherein each intention includes a key phrase recognized bythe voice recognition engine 300 paired with an action performed inresponse to the key phrase. At step 740, the voice suggestion software500 (specifically, the voice UI process 540) may display a voice controlUI 600 on a display screen of the remote control 140 or mobile device160 that presents the key phrases from the one or more selectedintentions as key phrase suggestions 610. Finally, at step 750, inresponse to speech input from the user, the voice recognition engine 300on the remote control 140 or mobile device 160 (specifically, therecognizer process 360) may compare the speech input against the keyphrases of the list of intentions to find a matching intention, andtrigger the action associated with the matching intention.

It should be understood that various adaptations and modifications maybe made to the above discussed sequence of steps and other portions ofthe above provided disclosure. While embodiments provided above involvea home automation system that includes a variety of different types ofdevices, such as lighting devices, security devices, A/V devices,electronic door locks, HVAC devices, etc., it should be remembered thatthe present techniques may be adapted for use with more limited types ofhome automation systems. For example, the techniques may be used with ahome automation system that provides only lighting control (i.e., alighting control system), a home automation system that provides onlyA/V control (i.e., an A/V control system), etc.

Further, while the disclosure provided above suggests various softwareprocesses may execute on particular devices (such as on host controller110, remote control 140 or mobile device 160, etc.), it should beunderstood that software processes may be executed on different hardwaredevices, including on cloud-based hardware as part of cloud services180.

Additionally, while it is described above that the history-based keyphrase suggestions may be based on a history of events that haveoccurred in the home automation system itself, it should be understoodthat events that have occurred in other home automation systems may alsobe considered. For example, cloud services 180 may aggregate events froma plurality of home automation systems and a prediction algorithm may beapplied to this combined event set to form key-phrase suggestions. Byconsidering a larger user base, various usage patterns that may not bediscernable in the events of a single home automation system may becomestatistically significant.

Further, it should be understood that at least some of the functionalitysuggested above to be implemented in software may be implemented inhardware. In general functionality may be implemented in software,hardware or various combinations thereof. Software implementations mayinclude electronic device-executable instructions (e.g.,computer-executable instructions) stored in a non-transitory electronicdevice-readable medium (e.g., a non-transitory computer-readablemedium), such as a volatile or persistent memory, a hard-disk, a compactdisk (CD), or other tangible medium. Hardware implementations mayinclude logic circuits, application specific integrated circuits, and/orother types of hardware components. Further, combined software/hardwareimplementations may include both electronic device-executableinstructions stored in a non-transitory electronic device-readablemedium, as well as one or more hardware components, for example,processors, memories, etc. Above all, it should be understood that theabove embodiments are meant to be taken only by way of example.

What is claimed is:
 1. A method comprising: building a history databaseon a storage device that maintains events that have occurred in a homeautomation system, each event associated with a time and indicating oneor more services activated, one or more scenes activated or one or moretypes of media content presented by the home automation system;selecting a subset of the events of the history database based on acomparison of each event and associated time with a present condition ofthe home automation system and a present time, to produce a scoredprediction dataset, wherein event scores in the scored predictiondataset are determined at least in part based on a frequency of eachevent within a time window, with a shorter time window causing a higherscore than a longer time window; selecting one or more intentions from alist of intentions based on the event scores from the scored predictiondataset, wherein each intention from the list is recognized by a voicerecognition engine and includes a key phrase paired with an action to beperformed by the home automation system; displaying, to a current userof a remote control or mobile device of the home automation system in auser interface on the remote control or mobile device, one or more keyphrases from the one or more selected intentions as one or more keyphrase suggestions; receiving, at the voice recognition engine, speechinput of the current user from a microphone of the remote control ormobile device; comparing, by the voice recognition engine, the speechinput against the key phrases of the list of intentions to find amatching intention; and triggering the action associated with thematching intention, wherein the action controls one or more deviceswithin a room of the home automation system.
 2. The method of claim 1,wherein the present time includes a present time of day and a presentday of week and the comparison determines events in the history databasethat occurred on a same day of the week as the present day of week, in atime window that encompasses the present time of day on any day of theweek, or in a time window that encompasses the present time of day on asame day of the week as the present day of the week.
 3. The method ofclaim 1, wherein the scoring is adjusted by a factor based on the typeof event, with types of events indicating more specific user actionreceiving higher scores than events indicating less specific useraction.
 4. The method of claim 1, further comprising: dynamicallygenerating the list of intentions based upon at least one ofconfiguration information for the home automation system, user contentdefined in the home automation system or a system state of the homeautomation system.
 5. The method of claim 1, further comprising:dynamically generating the list of intentions based upon the currentuser or a room being controlled.
 6. The method of claim 1, furthercomprising: storing the history database on a host controller that is incommunication with the remote control or mobile device over a network.7. The method of claim 1, wherein the list of intentions includes one ormore service intentions whose action when performed activates one ormore services within a room.
 8. The method of claim 1, wherein the listof intentions includes one or more scenes intentions whose action whenperformed activates one or more scenes.
 9. The method of claim 1,wherein the action is a system action that activates one or moreservices or activates one or more scenes, in the home automation system.10. The method of claim 1, wherein the action is a user interface (UI)action that controls one or more aspects of a home automation systemcontrol UI.
 11. A home automation system comprising: a host controllerthat is coupled to and configured to control one or more audio/video(A/V) devices, lighting devices, heating ventilation and cooling (HVAC)devices or security devices within a structure to provide homeautomation, the host controller including: host activity recordingsoftware stored on the host controller that is configured to build ahistory database that maintains events that have occurred in thestructure, each event indicating one or more services activated, one ormore scenes activated or one or more types of media content presented,and a predictions software process stored on the host controller that isconfigured to select a subset of the events of the history databasebased on a present condition of the home automation system and afrequency of each event within a time window to produce a scoredprediction dataset that scores each event based at least in part on thetime window, with a shorter time window causing a higher score than alonger time window; and a remote control or mobile device incommunication with the host controller over a network, the remotecontrol or mobile device including: a voice recognition engine stored onthe remote control or mobile device, and voice suggestion softwarestored on the remote control or mobile device and configured to selectone or more intentions from a list of intentions based on the eventscores of the scored prediction dataset wherein each intention from thelist is recognized by the voice recognition engine and includes a keyphrase paired with an action to be performed by the home automationsystem, and display on a screen of the remote control or mobile deviceto a current user of the home automation system one or more key phrasesfrom the one or more selected intentions as one or more key phrasesuggestions, wherein the voice recognition engine includes a recognizerprocess that is configured to receive speech input of the current userfrom a microphone of the remote control or mobile device, compare thespeech input against the key phrases of the list of intentions to find amatching intention, and trigger the action associated with the matchingintention and wherein the action controls one or more devices within aroom of the home automation system.
 12. The home automation system ofclaim 11, wherein each event in the history of events includes at leastan indication of a time associated with the event, the present conditionof the home automation system includes a present time, and the selectionis based on a comparison of the time of each event with the presenttime.
 13. The home automation system of claim 11, wherein the voicesuggestion software includes a grammar process that is configured todynamically generate the list of intentions based upon at least one ofconfiguration information for the home automation system, user contentdefined in the home automation system or a system state of the homeautomation system.
 14. The home automation system of claim 11, whereinthe voice suggestion software includes a grammar process that isconfigured to dynamically generate the list of intentions based upon thecurrent user or a room being controlled.
 15. A non-transitoryelectronic-device readable medium storing software that when executed onone or more processors is operable to: receive a scored predictiondataset that includes a frequency of events that occurred in a homeautomation system within a time window that prior to a present time,each event indicating one or more services activated, one or more scenesactivated or one or more types of media content presented by the homeautomation system, wherein each event is scored, and a shorter timewindow causes a higher score than a longer time window; select one ormore key phrases from a list of key phrases used by a voice recognitionengine of the home automation system based on the event scores; displaythe selected one or more key phases on a remote control or mobile deviceof the home automation system to a user as one or more key phrasesuggestions; receive speech input by the remote control or mobile devicefrom the user corresponding to one of the one or more key phraseselections; compare the speech input against the list of key phrasesused by the voice recognition engine to find a match; and trigger anaction associated with the matching key phrase, wherein the actioncontrols one or more devices within a room of the home automationsystem.
 16. The non-transitory electronic-device readable medium ofclaim 15, wherein the list of key phrases is part of a list ofintentions, with each intention pairing a key phrase and an actionperformed in response to the key phrase, and the selection of one ormore key phrases includes the selection of one or more intentions. 17.The non-transitory electronic-device readable medium of claim 15,wherein the software when executed on the one or more processors isfurther operable to: dynamically generate the list of intentions basedupon at least one of configuration information for the home automationsystem, user content defined in the home automation system or a systemstate of the home automation system.
 18. The non-transitoryelectronic-device readable medium of claim 15, wherein the software whenexecuted on the one or more processors is further operable to:dynamically generate the list of intentions based upon the current useror a room being controlled.